package org.jeecg.modules.rental.service;


import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.rental.entity.RentalAccountPackage;
import org.jeecg.modules.rental.entity.RentalEBike;

public interface IEquService {

//    Result<List<RentalStore>> mapListEquPoint(String latitude, String longitude, String accountId);
//
//    Result powerOn(String accountId,String cabinetId) throws InterruptedException;
//
//    Result powerOff(String accountId,String cabinetId) throws InterruptedException;
//
//    Result powerChange(String accountId,String cabinetId) throws InterruptedException;

//    Result  chargeMeshByCity(String cityId,String meshPointsName);
//
//    Result cabinetWarehouseInfo(String cabinetId);


    Boolean openCar(RentalAccountPackage rentalAccountPackage);
    Boolean openManageCar(Long carId);
    Boolean closeCar(RentalAccountPackage rentalAccountPackage);

    Boolean closeManageCar(Long carId);

    Boolean defenseCar(RentalAccountPackage rentalAccountPackage);
    Boolean defenseManageCar(Long carId);


    Boolean disarmingCar(RentalAccountPackage rentalAccountPackage);

    Boolean disarmingManageCar(Long carId);

    Boolean handleLockOpen(RentalAccountPackage rentalAccountPackage);

    Boolean handleManageLockClose(Long carId);

    Boolean pairRemoteControl(Long carId);

    Boolean clearRemoteControl(Long carId);

    Boolean handleLockClose(RentalAccountPackage rentalAccountPackage);

    Boolean searchCar(RentalAccountPackage rentalAccountPackage);
    Boolean searchManageCar(Long carId);

    Boolean seatLock(RentalAccountPackage rentalAccountPackage);

    Boolean seatManageLock(Long carId);


    Boolean setVolume(Long carId, Integer volume);

    Result queryLocation(RentalEBike car);

    Result queryControl(String address);

    Result queryLocation(Object param);

    /*-------------------------------------------------------------------------------------------------------------------------------------*/
    Boolean setPlayAudio(Long carId, Byte audioIndex);

    /**
     * 点火
     * @return
     */
    Boolean powerOn();

    Boolean enableManageSportMode(Boolean enable,Long carId);

    Boolean enableSportMode(Boolean enable);

    Boolean startLocationTrack(Long carId, Short timeInterval, int validityPeriod);

    /**
     * 熄火
     * @return
     */
    Boolean powerOff();

    /**
     * 设防
     * @return
     */
    Boolean locked();

    /**
     * 撤防
     * @return
     */
    Boolean unlock();

    /**
     * 寻车
     * @return
     */
    Boolean search();

    /**
     * 解锁坐桶锁
     * @return
     */
    Object unlockSeat();

    Object handleManageLockOpen(Long carId);

    boolean getSportModeStatus(RentalEBike car);

    Boolean setSpeedLimit(Long carId, Boolean enable);

    boolean moveCar(String carCode);
}
